package com.wangwei.activemq.hello;

import org.apache.activemq.ActiveMQConnectionFactory;

import javax.jms.*;

/**
 * 消费者
 */
public class Receiver {
    public static void main(String[] args) throws Exception{
        /**第一步：建立ConnectionFactory工厂对象，需要填入用户名、密码、连接的地址，均使用默认即可。*/
        ConnectionFactory connectionFactory = new ActiveMQConnectionFactory(
                ActiveMQConnectionFactory.DEFAULT_USER,
                ActiveMQConnectionFactory.DEFAULT_PASSWORD,
                "tcp://localhost:61616");
        /**第二步：通过connectionFactory工厂对象创建一个Connection连接，并调用Connection的start()方法开启。Connection默认是关闭的***/
        Connection connection = connectionFactory.createConnection();
        connection.start();

        /**第三步：通过Connection创建Session会话(上下文环境对象)，用于发送接收消息，参数一：是否启用事物；参数二：签收模式，一般设置自动签收模式**/
        Session session = connection.createSession(Boolean.FALSE, Session.AUTO_ACKNOWLEDGE);

        /**第四步：通过Session创建Destination对象，指的是一个客户端用来指定生产消息目标和消费消息来源的对象。在PTP(点对点)中，
         * Destination被称作Queue(队列)，在发布/订阅模式中，Destination被称作Topic(主题)
         * **/
        Destination destination = session.createQueue("wangwei");

        /**第五步：通过Session对象创建MessageConsumer对象**/
        MessageConsumer consumer = session.createConsumer(destination);

        while(true){
            TextMessage message = (TextMessage) consumer.receive();

            System.out.println("胡英接收消息："+message.getText());
        }

    }
}
